package com.leadingsoft.pwxk.service;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import com.leadingsoft.common.dto.TableResultDto;
import com.leadingsoft.pwxk.dto.SearchDto;
import com.leadingsoft.pwxk.enums.EDrainCountType;

public interface DrainCountService {

	// 大气统计污染物
	final static List<String> AIRCOUNTKEYS = Arrays.asList("颗粒物", "SO2", "NOx", "VOCs", "氨（氨气）");
	// 水统计污染物
	final static List<String> WATERCOUNTKEYS = Arrays.asList("pH值", "总磷（以P计）", "氨氮", "硫化物", "CODcr", "总氮（以N计）", "悬浮物");

	/**
	 * 大气主要排放口合计 - 表格
	 * 
	 * @param searchDto
	 * @return
	 */

	TableResultDto<Map<String, Object>> airCountOneTable(SearchDto searchDto, Long draw);

	/**
	 * 大气一般排放口合计 - 表格
	 * 
	 * @param searchDto
	 * @return
	 */

	TableResultDto<Map<String, Object>> airCountTwoTable(SearchDto searchDto, Long draw);

	/**
	 * 大气排放口合计 - 表格
	 * 
	 * @param searchDto
	 * @return
	 */

	TableResultDto<Map<String, Object>> airCountThrTable(SearchDto searchDto, Long draw);

	/**
	 * 大气主要排放口合计
	 * 
	 * @param searchDto
	 * @return
	 */

	Map<String, Float> airCountOne(SearchDto searchDto);

	/**
	 * 大气一般排放口合计
	 * 
	 * @param searchDto
	 * @return
	 */
	Map<String, Float> airCountTwo(SearchDto searchDto);

	/**
	 * 大气排放口合计
	 * 
	 * @param searchDto
	 * @return
	 */
	Map<String, Float> airCountThr(SearchDto searchDto);

	/**
	 * 水主要排放口合计 - 表格
	 * 
	 * @param searchDto
	 * @return
	 */

	TableResultDto<Map<String, Object>> waterCountOneTable(SearchDto searchDto, Long draw);

	/**
	 * 水主要排放口合计
	 * 
	 * @param searchDto
	 * @return
	 */

	Map<String, Float> waterCountOne(SearchDto searchDto);

	/**
	 * 水一般排放口合计
	 * 
	 * @param searchDto
	 * @return
	 */

	Map<String, Float> waterCountTwo(SearchDto searchDto);

	/**
	 * 水一般排放口合计
	 * 
	 * @param searchDto
	 * @return
	 */

	TableResultDto<Map<String, Object>> waterCountTwoTable(SearchDto searchDto, Long draw);

	/**
	 * 水车间或设施排放口合计 - 表格
	 * 
	 * @param searchDto
	 * @return
	 */

	TableResultDto<Map<String, Object>> waterCountThrTable(SearchDto searchDto, Long draw);

	/**
	 * 水车间或设施排放口合计 - 图表
	 * 
	 * @param searchDto
	 * @return
	 */

	Map<String, Float> waterCounThr(SearchDto searchDto);

	/**
	 * 水排放口合计 - 图表
	 * 
	 * @param searchDto
	 * @return
	 */

	Map<String, Float> waterCountFour(SearchDto searchDto);

	/**
	 * 水排放口合计 - 表格
	 * 
	 * @param searchDto
	 * @return
	 */

	TableResultDto<Map<String, Object>> waterCountFourTable(SearchDto searchDto, Long draw);

	/**
	 * 排放口统计（地图）
	 * 
	 * @param searchDto
	 * @return
	 */
	List<Map<String, Object>> DrainCountMap(SearchDto searchDto, EDrainCountType eGroup);

}
